import { Appender } from './Appender'
import { LoggerLevel } from './LoggerLevel'

/**
 * LoggerConfig
 *
 * @author 冰凝
 * @date 2022/12/11 8:31
 */
export interface LoggerConfig {
    /**
     * 启用调试等级 <br>
     * 生产环境应置为 false, 以确保 {@link config} 有效
     * @see LoggerFactory.getLogger
     */
    enableDebugLevel?: boolean
    /**
     * 持有追加器
     */
    appender: Record<string, Appender>
    root: LoggerRootConfig
    /**
     * 指定的日志记录器名称启用的日志等级
     */
    config?: Array<LoggerConfigItem>
}

export interface LoggerRootConfig {
    /**
     * 输出等级
     */
    level: LoggerLevel
    /**
     * 已配置的追加器的名字
     * @see LoggerConfig.appender
     */
    appender: Array<string> | string
}

export interface LoggerConfigItem {
    /**
     * 日志名称
     */
    name: string
    /**
     * 输出等级
     */
    level: LoggerLevel
    /**
     * 已配置的追加器的名字
     * @see LoggerConfig.appender
     */
    appender?: Array<string> | string
}
